﻿/*
 * date：2023/4/21
 * subject：异常过滤器
 * author:max
 * 
 * 为什么要用异常过滤器？
 * 1、省事？---我代码都写好了，不想在每个方法里try catch
 * 
 * 这种编程方式 ----   AOP（面向切面编程）
 * 
 * 过滤器有几种？（过滤器有注册顺序）
 * 1、授权  Authorization  Filter
 * 2、行为  Action Filter
 * 3、异常  Exception Filter
 * 4、结果  Result Filter
 * 5、资源(缓存等) Resource Filter
 * 
 * **/
using Microsoft.AspNetCore.Mvc.Filters;

namespace Max.PH5_2010A.Shopping.API
{
    /// <summary>
    /// 1、自定义异常过滤器（继承过滤的接口--你想实现的过滤器）
    /// 2、注册为全局过滤器
    /// </summary>
    public class MyExceptionFilter : IExceptionFilter
    {
        public void OnException(ExceptionContext context)
        {
            if (!context.ExceptionHandled)
            {
                NLog.Logger _logger = NLog.LogManager.GetCurrentClassLogger();
                _logger.Error(context.Exception.Message);
            }
            context.ExceptionHandled = true;
        }
    }
}
